package com.pro.mapper;

import com.pro.pojo.JsCourse;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @Author 祖铭泽
 * @Date 2022/1/12/0012
 * @description 课程 dao层
 */
@Repository
public interface JsCourseMapper {
    /**
     * @Author 祖铭泽
     * @Date 2022/1/12/0012
     * @description 根据课程分类、课程名称、课程现价查询所有课程
     */
    List<JsCourse> getCourses(JsCourse jsCourse);
    /**
     * @Author 祖铭泽
     * @Date 2022/1/13/0012
     * @description 根据课程id修改上架状态
     */
    boolean updateCourseStatus(JsCourse jsCourse);
    /**
     * @Author 祖铭泽
     * @Date 2022/1/13/001
     * @description 根据分类id查询课程数量
     */
    @Select("select count(course_id) FROM js_course where class_id = #{classId} and display = #{display}")
    Integer getClassLowerCourseCount(JsCourse jsCourse);
    /**
     * @Author 祖铭泽
     * @Date 2022/1/13/001
     * @description 根据分类id查询分类下的课程
     */
    List<JsCourse> getCoursesByClassId(JsCourse jsCourse);
    /**
     * @Author 祖铭泽
     * @Date 2022/1/13/001
     * @description 更改课程的显示状态
     */
    boolean deleteCourseByCourseId(JsCourse jsCourse);
    /**
     * @Author 祖铭泽
     * @Date 2022/1/13/001
     * @description 高级检索 根据课程名称、课程分类、课程id、课程现价、课程上传人、课程关键字查找课程
     */
    List<JsCourse> getCoursesCheck(JsCourse jsCourse);
    /**
     * @Author 祖铭泽
     * @Date 2022/1/14/001
     * @description 根据课程id查看课程详细信息
     */
    JsCourse getCourseByCourseId(JsCourse course);
    /**
     * @Author 祖铭泽
     * @Date 2022/1/14/001
     * @description 根据课程id修改课程信息
     */
    boolean updateCourseByCourseId(JsCourse jsCourse);
    /**
     * @Author 祖铭泽
     * @Date 2022/1/15/001
     * @description 根据课程关键字、课程名称、课程现价查询自己的课程
     */
    List<JsCourse> getSelfCourses(JsCourse jsCourse);
    /**
     * @Author 祖铭泽
     * @Date 2022/1/15/001
     * @description 高级检索 根据课程名称、课程分类、课程id、课程现价、课程上传人、课程关键字查找自己的课程
     */
    List<JsCourse> getSelfCoursesCheck(JsCourse jsCourse);
    /**
     * @Author 祖铭泽
     * @Date 2022/1/20/001
     * @description 添加课程
     */
    boolean addCourse(JsCourse jsCourse);
}
